package org.jiuling.netty.handler.service;

import io.netty.channel.Channel;
import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler;

/**
 * 业务处理服务
 * @author 紫灵
 * @date 2025年07月11日 12时04分35秒
 */
public interface BusinessHandlerService<T> {

    /**
     * 预处理
     * @param channel 连接
     */
    void preparationProcessing(Channel channel);

    /**
     * 握手完成
     * @param channel 握手完成的连接
     * @param handshake 握手信息
     */
    void handshakeComplete(Channel channel, WebSocketServerProtocolHandler.HandshakeComplete handshake);

    /**
     * 读取消息
     * @param channel 连接
     * @param message 消息
     */
    void readMessage(Channel channel, T message);

    /**
     * 移除
     * @param channel 移除的连接
     */
    void removed(Channel channel);

    /**
     * 异常
     * @param channel 连接
     * @param throwable 异常
     */
    void exception(Channel channel,Throwable throwable);
}
